package com.hybs;/*
 * @author: Hayabusa
 * @date: 2021/9/14 23:12
 * @Description:
 * @Email:2682557218@qq.com
 */


import com.hayabusa.config.DefaultFeignConfiguration;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;


@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.hayabusa.clients",defaultConfiguration = DefaultFeignConfiguration.class)
public class OrderApplication {
    /**
     * 使用spring提供的RestTemplate发送http请求到商品服务
     *     1.创建RestTemplate对象交给容器管理
     *     2.在使用的时候，调用其他方法完成操作(getxx,postxx)
     * @LoadBalanced:是ribbon提供的负载均衡的注解
     *
     */

//    创建对象
//    负载均衡
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

//    设置负载均衡方式  亦可以写一个配置类当中
//    全局配置  代码方式设置负载均衡策略时需要重启服务,配置方式无需重新打包发布
    @Bean
    public IRule randomRule(){
        return new RandomRule();
    }


    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class,args);
    }
}
